/*
******************************************************************************************************* 
**  Copyright (C) 2019, 苏州检易生物科技有限公司 
**  All rights reserved. 
** 
**  FileName:       	qr_scan.h
**  Description:	
**  Author:        	 
**  Version				v0.1
**  Date:           	2019-05-24
**	Function List： 
**  History:         
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*                                              	防止重复包含
*********************************************************************************************************
*/

#ifndef  _RFID_H_
#define  _RFID_H_
/*
*********************************************************************************************************
*                                              	调试开关
*********************************************************************************************************
*/



/*
*********************************************************************************************************
*                                              	头文件
*********************************************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "uart.h"
#include "stm32h7xx_hal.h"
#include "bsp_conf.h"
#include "log_console.h"
#include "modbus.h"

/*
*********************************************************************************************************
*                                              	宏定义
*********************************************************************************************************
*/
#define RFID_DATA_BUFF_SIZE 	0x80
#define RFID_DATA_WORD_SIZE		0x40
#define RFID_MODBUS_ADDR			1
#define RFID_UART_BAUDRATE		115200

#define RFID_CHANNEL_1_ENABLE	0x0001
#define RFID_CHANNEL_2_ENABLE	0x0002
/*
*********************************************************************************************************
*                                              枚举和结构体类型定义
*********************************************************************************************************
*/
typedef enum{
	RFID_UNINIT,
	RFID_ERR_NONE,
	RFID_ERR,
}rfid_status_t;

typedef enum{
	RFID_ADDR 		= 0x0000,
	RFID_BAUDRATE = 0x0001,
	RFID_PARITY	  = 0x0002,
	RFID_CHANNEL 	= 0x0003,
	RFID_EXIST 		= 0x0004,
	RFID_STATUS 	= 0x0005,
	
	RFID_READ_START		= 0x000A,
//	RFID_READ_B		= 0x000B,
//	RFID_READ_C		= 0x000C,
//	RFID_READ_D		= 0x000D,
	
}rfid_reg_t;

#pragma pack(1)
/*RFID 回复数据格式*/
typedef struct{
	uint8_t addr;
	uint8_t fn;
	uint8_t byte_size;
	uint8_t data[RFID_DATA_BUFF_SIZE];
	uint16_t crc;
}rfid_recv_t;

typedef struct{
	uint8_t addr;
	uint8_t fn;
	uint16_t reg_addr;
	uint16_t data;
	uint16_t crc;
}rfid_write_t;
#pragma pack()

typedef void (*rfid_read_callback)(uint8_t * buff,uint16_t size);
/*
*********************************************************************************************************
*                                              	全局变量声明
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                              	函数声明
*********************************************************************************************************
*/


void rfid_init(rfid_read_callback);
void rfid_read(void);
#endif